﻿using System;
using System.Collections.Generic;

using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using MiWebSite_Core;
using WLMCoreLibrary;

namespace MWS_AddDirectory.handlers.search
{
    public partial class _default : System.Web.UI.Page
    {
        dbConnector ConexionDB;
        WebSiteMainConfiguration config;

        protected void Page_Load(object sender, EventArgs e)
        {
            if (Request.QueryString["id"] != null)
                AnuncioParticular(Convert.ToInt32(Request.QueryString["id"]));
            if (Request["anunciosUsuario"] != null)
                AnunciosCliente(CurrentClient.Id);

            BusquedaAnuncios();
        }

        public void BusquedaAnuncios()
        {
            config = WebSiteMainConfiguration.GetConfig();
            ConexionDB = new dbConnector(config.Connections[0].value);
            string strBusqueda = "";
            if (Request["buscar"] != null)
                strBusqueda = WLMFunctions.CleanQuery(Request["buscar"]);
            int totalRegistros = 10;
            if (Request.QueryString["noRegistros"] != null)
                totalRegistros = Convert.ToInt32(Request.QueryString["noRegistros"]);
            BusquedaRegistro busqueda = new BusquedaRegistro(strBusqueda, ref ConexionDB);
            if (busqueda.id == 0)
            {
                busqueda = new BusquedaRegistro(ref ConexionDB);
                busqueda.busqueda = strBusqueda;
            }
            busqueda.conteo++;
            busqueda.Save();
            AnuncioCollection anuncios = new AnuncioCollection(WLMFunctions.CleanQuery(strBusqueda), totalRegistros, ref ConexionDB);
            Response.ContentType = "text/xml";
            Response.Write(WLMFunctions.SerializeObject(anuncios, true));
            anuncios = null;
            ConexionDB.CloseConnection();
            Response.End();
        }

        public void AnuncioParticular(int idAnuncio)
        {
            Response.ContentType = "text/xml";
            if (CurrentClient.Id != 0)
            {
                config = WebSiteMainConfiguration.GetConfig();
                ConexionDB = new dbConnector(config.Connections[0].value);
                Anuncio anuncio = new Anuncio(idAnuncio, ref ConexionDB);
                if (anuncio.idCliente != CurrentClient.Id)
                {
                    ErrorObject errorOb = new ErrorObject();
                    errorOb.Description = "Este Anuncio no Pertenece al Usuario";
                    errorOb.Code = ErrorCode.UserDontHaveAdd;
                    Response.Write(WLMFunctions.SerializeObject(errorOb, true));
                    Response.End();
                }

                Response.Write(WLMFunctions.SerializeObject(anuncio, true));
                Response.End();
                ConexionDB.CloseConnection();
            }
            else
            {
                ErrorObject errorOb = new ErrorObject();
                errorOb.Description = "No esta logeado en el sistema";
                errorOb.Code = ErrorCode.UserNotLogged;
                Response.Write(WLMFunctions.SerializeObject(errorOb, true));
                Response.End();
            }
        }

        public void AnunciosCliente(int idCliente)
        {
            Response.ContentType = "text/xml";
            if (CurrentClient.Id != 0)
            {
                config = WebSiteMainConfiguration.GetConfig();
                ConexionDB = new dbConnector(config.Connections[0].value);
                AnuncioCollection anunciosCliente;
                if (Request.QueryString["tipo"] == null)
                    anunciosCliente = new AnuncioCollection(new Cliente(idCliente, ref ConexionDB), 150,null, ref ConexionDB);
                else
                {
                    switch (Request.QueryString["tipo"])
                    {
                        case "destacados":
                            anunciosCliente = new AnuncioCollection(new Cliente(idCliente, ref ConexionDB), 150,"destacados", ref ConexionDB);
                            break;
                        case "porvencer":
                            anunciosCliente = new AnuncioCollection(new Cliente(idCliente, ref ConexionDB), 150,"porvencer", ref ConexionDB);
                            break;
                        default:
                            anunciosCliente = new AnuncioCollection(new Cliente(idCliente, ref ConexionDB), 150,"vencidos", ref ConexionDB);
                            break;
                    }
                }
                Response.Write(WLMFunctions.SerializeObject(anunciosCliente, true));
                Response.End();
                ConexionDB.CloseConnection();
            }
            else
            {
                ErrorObject errorOb = new ErrorObject();
                errorOb.Description = "No esta logeado en el sistema";
                errorOb.Code = ErrorCode.UserNotLogged;
                Response.Write(WLMFunctions.SerializeObject(errorOb, true));
                Response.End();
            }
        }
    }
}